// 公共云对象
module.exports = {
	_before: function () { // 通用预处理器

	},
	/**
	 * 文本转音频
	 * @param {string} param1 参数1描述
	 * @returns {object} 返回值描述
	 */
	 
	async getSambert() {
		// 参数校验，如无参数则不需要
		if (!data) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'data参数不能为空'
			}
		}
		
		var url = 'http://api.kungshu.com/api/get_sambert';
		param.data = data;
		const res = await uniCloud.httpclient.request(url, {
		    method: 'POST',
			timeout:120000,
		    data: param,
			headers: {
			    'Content-Type': 'application/json'
			},
		    contentType: 'json', // 指定以application/json发送data内的数据
		    dataType: 'json' // 指定返回值为json格式，自动进行parse
		  })
		  
		  return {
			 code:0,
			  message:'请求成功',
			  result:res
		  }
		  
	},
	
	/**
	 * 作用：添加数据到数据
	 * 
	 */
	
	async addData(table,data){
		if (!data || !table) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		var db = uniCloud.database();
		var result  = await db.collection(table).add(data);
		
		return {
			code:0,
			message:'请求成功',
			result:result
		}
	},
	
	/**
	 * 作用：从数据库查询结果
	 * @table:操作的数据表
	 * @where:条件
	 * @orderField:排序字段
	 * @orderDecOrAsc:排序字段正序还是倒序
	 * 
	 */
	async getData(table,where=null,orderField='create_date',orderDecOrAsc='desc'){
		if (!table) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'table参数不能为空'
			}
		}
		var db = uniCloud.database();
		if(where){
			var result = await db.collection(table).where(where).orderBy(orderField,orderDecOrAsc).get();
		}else{
			var result = await db.collection(table).orderBy(orderField,orderDecOrAsc).get();
		}
		return {
			code:0,
			message:'请求成功',
			result:result
		}
	},
	
	/**
	 * 作用：从数据库查询结果
	 * @table:操作的数据表
	 * @where:条件
	 * @orderField:排序字段
	 * @orderDecOrAsc:排序字段正序还是倒序
	 * @currentPage:当前页码数
	 * @page:每页展示的数量
	 * 
	 */
	async getPageData(table,where=null,orderField='create_date',orderDecOrAsc='desc',currentPage=1,page=10){
		if (!table) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'table参数不能为空'
			}
		}
		var db = uniCloud.database();
		var skip = (currentPage -1) * page;
		if(where){
			var result = await db.collection(table).where(where).orderBy(orderField,orderDecOrAsc).skip(skip).limit(10).get();
		}else{
			var result = await db.collection(table).orderBy(orderField,orderDecOrAsc).skip(skip).limit(10).get();
		}
		return {
			code:0,
			message:'请求成功',
			result:result
		}
	},
	/**
	 * 作用：更新数据到数据库
	 * @table:表名
	 * @where:更新条件
	 * @data:要更新的数据
	 */
	async updateData(table,where,data){
		if(!table || !where || !data){
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		if(data._id){
			delete data._id
		}
		var db = uniCloud.database();
		var result = await db.collection(table).where(where).update(data);
		return {
			code:0,
			message:'请求成功',
			result:result
		}
	},
	
	/**
	 * 作用：删除表create_result的单条记录和远程文件
	 * @item:要删除的记录
	 */
	
	async removeDataById(id){
		if (!id) {
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'id参数不能为空'
			}
		}
		
		  var db = uniCloud.database();
		  //删除数据库记录
		  var res = await db.collection('create_result').where({_id:id}).remove();
		  return {
			  code:200,
			  message:'删除成功',
			  result:res
		  }
		
	},
	
	/**
	 * 作用：删除图片源文件
	 * filePth:要删除的图片路径
	 */
	async removeFileByPath(filePath){
		if(!filePath){
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: 'filePath参数不能为空'
			}
		}
		let result = await uniCloud.deleteFile({
		    fileList: [
		        filePath
		    ]
		});
		
		return {
			code:200,
			message:'删除成功',
			result:result
		}
	}
}
